home *** CD-ROM | disk | FTP | other *** search
/ Popular Request / By Popular Request (Arsenal Computer)(SysOptics Distribution System).ISO / amiga2 / jad30amy.lha / jade / lisp / c-mode.jlc < prev    next >
Text File  |  1994-04-20  |  2KB  |  31 lines

  1.  
  2. (provide (quote c-mode))
  3.  
  4. (defvar c-mode-tab 4 62277)
  5.  
  6. (defvar c-mode-auto-indent nil 62308)
  7.  
  8. (setq c-mode-keymap (make-keylist))
  9.  
  10. (bind-keys c-mode-keymap "return" (quote c-return) "shift-return" (quote split-line) "{" (quote c-open-brace) "}" (quote c-close-brace) ":" (quote c-colon) "tab" (quote c-indent-cursor) "meta-tab" (quote goto-next-tab))
  11.  
  12. (defun c-mode nil 62384 (lisp-code "\tH#%å&çêëKF&ë" [eval-hook c-mode-hook "c-mode" mode-name c-mode-kill major-mode-kill c-mode-tab screen-tab c-mode-keymap keymap-path] 2))
  13.  
  14. (defun c-mode-kill nil (lisp-code "I \nF#" [mode-name delq c-mode-keymap keymap-path] 3))
  15.  
  16. (defun c-return nil (lisp-code "H■ÇÿⁿÇô\t√Çÿå\t" [split-line c-mode-auto-indent empty-line-p goto c-indent-pos-empty set-indent-pos c-indent-pos] 2))
  17.  
  18. (defun c-open-brace nil (lisp-code "\tH\t" [insert "{" set-indent-pos c-indent-pos] 2))
  19.  
  20. (defun c-close-brace nil (lisp-code "\tH\t" [insert "}" set-indent-pos c-indent-pos] 2))
  21.  
  22. (defun c-colon nil (lisp-code "\tH\t" [insert ":" set-indent-pos c-indent-pos] 2))
  23.  
  24. (defun c-indent-pos (&optional line-pos) 62432 (lisp-code "\tF!HD\t3\t]■Ç╡å\nⁿÇúçê\n√Ç╡ë\nⁿÇ┤èê\n√Ç╡IHE" [line-start line-pos c-indent-pos-empty ind-pos empty-line-p regexp-match-line "^ *({|}|case .*:|default *:)" prev-tab 1 "^ *([a-zA-Z0-9_]*:|#)" set-pos-col] 3))
  25.  
  26. (defun c-indent-pos-empty (&optional line-pos) 62575 (lisp-code "\tF!HD\t\n5å\t Ç¢çê\n■Ǽ\n Ç¿ëH√ÇÄHDè\t6ïîïì\t\nHçÄ\nⁿÇ╨Åï\n√ü█çÉ\nⁿüÖ\nHå\t Çδçê\n■Çⁿ\n Ç°ëH√Ç▐Hçæ\n■üìçÆ\n]■üûôï\n√ü█çö\nⁿü╡çò\n ü▓ûùï\n√ü█çÿ\nⁿü╟Öï\n√ü█çò\nⁿü┌Öùï\n√ü█IHïEE" [line-start line-pos prev-line 1 dup-pos p-line-pos empty-line-p regexp-match-line "^([a-zA-Z0-9_]+:|#)" return indent-pos ind-pos set-pos-line pos-line "{|case .*:|default *:|do($| )|else|(if|for|while|switch) *\\(.*\\)" next-tab ";" "do($| )|else|(if|for|while|switch) *\\(.*\\)" " { *(/\\*.*\\*/|) *$" prev-tab "^ */\\*" "\\*/" right-char 3 "^ *\\*/ *$" left-char] 4))
  27.  
  28. (defun c-indent-lines (start-pos end-pos) (lisp-code "\tF!Hf■Ç¢\t\tHå\nH√Çå" [line-start start-pos end-pos set-indent-pos c-indent-pos next-line 1] 3))
  29.  
  30. (defun c-indent-cursor (&aux tmp) (lisp-code "ⁿÇÄ\t\t√Ç╣\t\tF&åHådⁿǺå\t√Ç╣çdⁿÇ╕ç\t√Ç╣I" [empty-line-p goto c-indent-pos-empty cursor-pos set-indent-pos c-indent-pos tmp line-end] 3))
  31.